Zum Hauptinhalt springen

5) Geschachtelte SELECT-Befehle

Eine geschachtelte select-Anweisung enthält in der where-Klausel eine weitere select-Anweisung als Unterabfrage.

Verwendete Datenbank ist die cia-Datenbank aus 4).

Als Beispiel: Gesucht sind die Namen der Länder, die eine kleinere Bevölkerung als die Anguilla haben.

Zu Fuß würdest du erst eine select-Anweisung für die Bevölkerung von Anguilla machen und mit dem Ergebnis dann die Länder bestimmen, die eine kleinere Bevölkerung haben.

Mit einer einzigen geschachtelten select-Anweisung geht das aber direkt:

MariaDB [cia]> SELECT Name
-> FROM cia
-> WHERE Einwohner < (
-> SELECT Einwohner
-> FROM cia
-> WHERE Name = 'Anguilla');
+----------------------------+
| Name |
+----------------------------+
| Antarktik |
| Ashmore und Cartier Inseln |
| Baker Island |
+----------------------------+
3 rows in set (0.000 sec)

Gib alle Länder aus, die in der gleichen Region wie Bangladesh liegen.

Auch hier könntest Du mit einer Abfrage zuerst die Region von Bangladesh bestimmen und dann mit einer zweiten Abfrage die gesuchten Länder. Mit einer geschachtelten select-Anweisung geht das auf einmal:

MariaDB [cia]> SELECT Name
-> FROM cia
-> WHERE Region = (
-> SELECT Region
-> FROM cia
-> WHERE Name = 'Bangladesh');
+-------------+
| Name |
+-------------+
| Afghanistan |
| Bangladesh |
+-------------+
2 rows in set (0.000 sec)